package com.nuoniu.sibanyun.service.utils;

import com.nuoniu.sibanyun.common.exception.NuoNiuException;

import java.math.BigDecimal;

/**
 * @ClassName ErpUtils
 * @Description 进销存 工具类
 * @Author 白强
 * @Date 2021/12/20 11:00
 * @Version 1.0
 **/
public class ErpUtils {
    /**
     * @title 统一校验 “审核”状态
     * @description 
     * @author 白强 
     * @updateTime 2021/12/20 11:07 
     * @throws
     */
    public static void checkExamineStatus(Integer voucherState,Integer status,BigDecimal cumExecuteQuantity){
        if(null == voucherState || null == status)throw new NuoNiuException("参数错误");
        if(voucherState < 0)throw new NuoNiuException("该单据还未提交");
        if(voucherState > 1)throw new NuoNiuException("该单据已经走到下一个流程，不能进行审核/弃审操作");
        if(status == 1){
            if(voucherState > 0)throw new NuoNiuException("该单据已经审核");
        }else if(status == 0){
            if (voucherState == 0)throw new NuoNiuException("该单据已经是未审核状态，不能弃审");
            if(null != cumExecuteQuantity && cumExecuteQuantity.compareTo(BigDecimal.ZERO) > 0)throw new NuoNiuException("已经生单，不能做弃审操作，需先删除已生成的单据");
        }
    }
    /**
     * @title 统一校验 “提交”状态
     * @description
     * @author 白强
     * @updateTime 2021/12/20 11:16
     * @throws
     */
    public static void checkSubmitStatus(Integer voucherState,Integer status){
        if(null == voucherState || null == status)throw new NuoNiuException("参数错误");
        if(status == 0){
            if (voucherState > -1)throw new NuoNiuException("该单据已经提交");
        }else if(status == -1){
            if (voucherState > 0)throw new NuoNiuException("该单据已经审核,请先弃审");
        }
    }

}
